/**
 * TypeScript 联合类型
 * 联合类型（Union Types）可以通过管道(|)将变量设置多种类型，赋值时可以根据设置的类型来赋值。
 * 注意：只能赋值指定的类型，如果赋值其它类型就会报错。
 * 创建联合类型的语法格式如下：
 */
var val1: string | number;
val1 = 12;
console.log("数字为 " + val1);
val = "Runoob";
console.log("字符串为 " + val1);
//val1 = true 不能赋其他类型的值

//联合类型作为函数参数
function disp(name: string | string[]) {
  if (typeof name == "string") {
    console.log(name);
  } else {
    var i;
    for (i = 0; i < name.length; i++) {
      console.log(name[i]);
    }
  }
}
disp("Runoob");
console.log("输出数组....");
disp(["Runoob", "Google", "Taobao", "Facebook"]);

//数组的联合类型
var arr5: number[] | string[];
var i: number;
arr5 = [1, 2, 4];
console.log("**数字数组**");
for (i = 0; i < arr5.length; i++) {
  console.log(arr5[i]);
}

arr5 = ["Runoob", "Google", "Taobao"];
console.log("**字符串数组**");
for (i = 0; i < arr5.length; i++) {
  console.log(arr5[i]);
}
